package mx.ipn.persistencia.dao;

import java.util.ArrayList;

import mx.ipn.to.BitacoraAsistenciaTO;

public interface BitacoraAsistenciaDAO {

	public int insertBitacoraAsistencia(
			BitacoraAsistenciaTO bitacoraAsistenciaTO);

	public short updateBitacoraAsistencia(
			BitacoraAsistenciaTO bitacoraAsistenciaTO);
	
	public short considerarBitacoraAsistencia(boolean considerar,int idOperacion);
	
	public short deleteBitacoraAsistencia(int idOperacion);

	public BitacoraAsistenciaTO findBitacoraAsistenciaById(int idOperacion);
	
	public BitacoraAsistenciaTO findBitacoraAsistenciaByFechaEmpleadoConsiderada(java.sql.Date fecha,int idEmpleado,boolean considerada);

	public ArrayList<BitacoraAsistenciaTO> selectBitacoraAsistencia();

	public ArrayList<BitacoraAsistenciaTO> selectByRangoFecha(
			java.sql.Date inicio, java.sql.Date fin);

	public BitacoraAsistenciaTO selectByRangoFechaMotivo(
			java.sql.Date inicioFecha, java.sql.Date finFecha, int idMotivo);

	public BitacoraAsistenciaTO selectByRangoFechaEmpleado(java.sql.Date inicioFecha, java.sql.Date finFecha, int idEmpleado);
	
	public BitacoraAsistenciaTO selectByRangoFechaEmpleadoConsiderada(java.sql.Date inicioFecha, java.sql.Date finFecha, int idEmpleado,boolean considerada);
	
	public BitacoraAsistenciaTO selectByRangoFechaEmpleadoMotivoConsiderada(java.sql.Date inicioFecha, java.sql.Date finFecha, int idEmpleado,int idMotivo,boolean considerada);

	public BitacoraAsistenciaTO selectByRangoFechaUsuario(
			java.sql.Date inicioFecha, java.sql.Date finFecha, int idUsuario);

	public BitacoraAsistenciaTO selectByRangoFechaMotivoEmpleado(
			java.sql.Date inicioFecha, java.sql.Date finFecha, int idMotivo,
			int idEmpleado);
}
